In many applications it is necessary to measure physical parameters as a function of time and to analyze the data. One such application is required in a Fourier Transform Nuclear Magnetic Resonance (FT NMR) Spectrometer. As illustrated in FIG. 1, a sample material 8 being analyzed in an FT NMR spectrometer 1 is retained in a strong homogenous magnetic field (H.sub.0) from a concentric magnet 2 and orthogonally directed repetitive high frequency RF pulses from a transmitter on coax 3 are applied to the sample 8 via probe 7. The magnetic moments of the nuclei of the atoms of the sample material become aligned in the same direction as the H.sub.0 field and are perturbed from that alignment by the high frequency pulses. Between each high frequency pulse, the magnetic moment of the nuclei of the sample atom precess around the H.sub.0 field in a manner which depends uniquely on the sample's atomic structure and the magnetic forces between its atoms as a consequence of that structure.
As explained in connection with FIG. 1 of U.S. Pat. No. 3,495,680, by detecting the waveform of the signal generated by the processing magnetic moment of the sample nuclei, it is possible to deduce the atomic structure of the sample. A coil of wire in the probe known as the receiver coil (not shown) is placed as closely as possible to the sample material and is spatially aligned orthogonally to the transmitter so as to be insensitive to the driving pulses but to sense any induced voltages in the receiver coil as the magnetic moments of the atoms of the sample precess. This induced signal in the receiver is provided on cable 9 to RF receiver 10 where it is phase detected. The RF receiver coil and audio output is coupled to a time averaging computer where it is sampled at times t.sub.n at uniformly displaced time intervals from the transmitter pulse off time and where the sample value for each time t.sub.n is summed up in a channel of memory.
More modern time averagers employ high speed analog to digital converters (ADC) 6, which sample the received signal voltage at a high speed and convert it to a series of digital numbers. With reference to FIG. 1, modern FT NMR spectrometers employ such an ADC 6 and the averager 5 stores these sample values very accurately referenced to the time of the end of the transmitter pulse via synchronization from Controller/Fourier Transform Computer 4. By performing the sampling and ADC conversion and recording the signal following each of many pulses it is possible to build up a very accurate time domain waveform signal which is the response of the sample nuclei to the high frequency pulses. Since the noise in the received signals are random, by adding K such signals together, the signals will add linearly with K and the random noise will increase with the square root of K. Accordingly, the signal to noise ratio can, in general, be improved by increasing the number of samples. This effect does not continue indefinitely, but it is not unusual to sum for hundreds of thousands of pulses over a period of several hours, or even several days. However, in any such numerical process, there is a practical limit both in the size of the memory in the averaging computer which can be used for this process and in the number of bits used in the computation. Accordingly, in the analysis of such data it becomes desirable to discard the less significant and noisy portion of the data and perform the computations on the most significant data. This can be done by obtaining the average, i.e. dividing the sum of all signals for any point in time by the number of samples taken.
However, this averaging technique would restrict the total number of samples which can be accumulated to a value which is less than the number which would cause overflow of the memory channel which is recording the largest signal. To overcome this problem, the data in each memory channel is evaluated, and whenever the data in a channel would overflow, such channels are scaled. This means that the input data from the ADC also needs to be scaled from then on so that when new data is added to the channel it is consistently valued. Since the conventional ADC converts the analog signal to a binary representation, it has become customary in the art to scale the ADC data by simply shifting the data one bit toward the least significant bit for each factor of two in the division. For example, if the ADC provided 16 bits of resolution, it has become customary to shift the sum data a maximum of 15 places i.e. divide by 2.sup.15. In the prior art, this has been accomplished by loading the data in parallel into a counter, and also loading the number of shifts desired into a second register, then repeatedly shifting the data in the counter by one bit and decrementing the counter. When the counter equaled zero, the remaining contents of the shift register were the desired scaled number.
The difficulty with this shifting technique is that it requires a good deal of time. As the sampling rates have increased, this shifting time, when added to the time required to process the data for each point has become a limiting factor. In addition to this computation speed problem, when carrying out NMR experiments, the number of pulses to be summed, i.e. the sampling time, is a variable which is selected by the experimenters and can vary from minutes to days. Accordingly, the number of shifts for scaling the data also varies and must be considered in such counter scaling. Finally, as the demands on NMR have increased, more computational speed is required, and scaling time has been a limiting factor.